\hypertarget{parser_8h}{
\section{parser.h File Reference}
\label{parser_8h}\index{parser.h@{parser.h}}
}


The specification header for the \hyperlink{classParser}{Parser} component object.  


{\ttfamily \#include $<$vector$>$}\par
{\ttfamily \#include $<$string$>$}\par
{\ttfamily \#include $<$iostream$>$}\par
{\ttfamily \#include $<$sstream$>$}\par
{\ttfamily \#include $<$stack$>$}\par
{\ttfamily \#include \char`\"{}token.h\char`\"{}}\par
{\ttfamily \#include \char`\"{}admin.h\char`\"{}}\par
{\ttfamily \#include \char`\"{}set.h\char`\"{}}\par
{\ttfamily \#include \char`\"{}first.h\char`\"{}}\par
{\ttfamily \#include \char`\"{}blocktable.h\char`\"{}}\par
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{classParser}{Parser}
\begin{DoxyCompactList}\small\item\em The main object for Parsing the PL source code and guaranteeing correctness. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \hyperlink{parser_8h_a84146e06b05135ce314ab9e853e43d8c}{blocktype} \{ \hyperlink{parser_8h_a84146e06b05135ce314ab9e853e43d8ca55fca26d1d0cf71206df262ff0e53e96}{STATEMENTPART}, 
\hyperlink{parser_8h_a84146e06b05135ce314ab9e853e43d8ca6d8159b1b703299e41ff798ec42c04de}{DEFINITIONPART}
 \}
\begin{DoxyCompactList}\small\item\em Standard STL output, string and container classes. \item\end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
The specification header for the \hyperlink{classParser}{Parser} component object. The \hyperlink{classParser}{Parser} is responsible for properly syntactically verifying that the input is correct, and (virtually) forming a syntax and grammatical tree from the scanned input.

It accomplishes this by linking back to the \hyperlink{classScanner}{Scanner} through the \hyperlink{classAdmin}{Admin}, using it to grab a given \hyperlink{classToken}{Token}, then intelligently proceeding to the next set of proper steps in the Grammatical structure of the PL Language.

Note that the Doxygen function documentation for these functions must be referred to from the CPP file as defining them again here would be not just redundant, but horrendously ugly.

\begin{DoxyAuthor}{Author}
Jordan Peoples, Chad Klassen, Adam Shepley 
\end{DoxyAuthor}
\begin{DoxyDate}{Date}
January 9th to February 29th, 2011 
\end{DoxyDate}


\subsection{Enumeration Type Documentation}
\hypertarget{parser_8h_a84146e06b05135ce314ab9e853e43d8c}{
\index{parser.h@{parser.h}!blocktype@{blocktype}}
\index{blocktype@{blocktype}!parser.h@{parser.h}}
\subsubsection[{blocktype}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf blocktype}}}
\label{parser_8h_a84146e06b05135ce314ab9e853e43d8c}


Standard STL output, string and container classes. 

A PL Program has two \char`\"{}parts\char`\"{} of any block, which are a statement part and a definition part. We need to track these for our semantic analysis. \begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{STATEMENTPART@{STATEMENTPART}!parser.h@{parser.h}}\index{parser.h@{parser.h}!STATEMENTPART@{STATEMENTPART}}\item[{\em 
\hypertarget{parser_8h_a84146e06b05135ce314ab9e853e43d8ca55fca26d1d0cf71206df262ff0e53e96}{
STATEMENTPART}
\label{parser_8h_a84146e06b05135ce314ab9e853e43d8ca55fca26d1d0cf71206df262ff0e53e96}
}]\index{DEFINITIONPART@{DEFINITIONPART}!parser.h@{parser.h}}\index{parser.h@{parser.h}!DEFINITIONPART@{DEFINITIONPART}}\item[{\em 
\hypertarget{parser_8h_a84146e06b05135ce314ab9e853e43d8ca6d8159b1b703299e41ff798ec42c04de}{
DEFINITIONPART}
\label{parser_8h_a84146e06b05135ce314ab9e853e43d8ca6d8159b1b703299e41ff798ec42c04de}
}]\end{description}
\end{Desc}

